#!/bin/bash

# 定义目标文件URL和本地文件名
TARGET_URL="https://raw.githubusercontent.com/talwat/lowfi/refs/heads/main/data/chillhop.txt"
UPDATE_FILE="update-chillhop.txt"  # 下载的中间文件
DEST_FILE="chillhop.txt"           # 最终要更新的目标文件
TEMP_FILE=$(mktemp)                # 临时文件用于下载校验

# 检查下载工具
download_file() {
    if command -v wget &> /dev/null; then
        wget -q -O "$1" "$2"
    elif command -v curl &> /dev/null; then
        curl -s -o "$1" "$2"
    else
        echo "错误：未找到wget或curl，请先安装其中一个下载工具"
        exit 1
    fi
}

# 第一步：下载最新内容到临时文件
echo "正在下载最新的 chillhop 数据..."
download_file "$TEMP_FILE" "$TARGET_URL"

# 检查下载是否成功
if [ ! -s "$TEMP_FILE" ]; then
    echo "错误：文件下载失败，无法继续"
    rm -f "$TEMP_FILE"
    exit 1
fi

# 将临时文件内容同步到 update-chillhop.txt（确保中间文件是最新的）
mv -f "$TEMP_FILE" "$UPDATE_FILE"
echo "已将最新内容保存到 $UPDATE_FILE"

# 第二步：比较 update-chillhop.txt 和 chillhop.txt，更新目标文件
if [ -f "$DEST_FILE" ]; then
    # 存在目标文件，比较差异
    DIFF=$(diff -u "$DEST_FILE" "$UPDATE_FILE")
    if [ -z "$DIFF" ]; then
        echo "✅ $DEST_FILE 已是最新版本，无需更新"
    else
        echo "🔍 发现差异，正在更新 $DEST_FILE..."
        echo "差异内容："
        echo "$DIFF"
        # 用中间文件更新目标文件
        cp -f "$UPDATE_FILE" "$DEST_FILE"
        echo "✅ 更新完成，$DEST_FILE 已同步为最新版本"
    fi
else
    # 目标文件不存在，直接复制
    echo "⚠️ 未找到 $DEST_FILE，首次创建并同步内容"
    cp -f "$UPDATE_FILE" "$DEST_FILE"
    echo "✅ 已创建 $DEST_FILE 并同步最新内容"
fi

rm $UPDATE_FILE
